package com.dkm.orproject.dkmoa.service;

import com.dkm.orproject.dkmoa.domain.OaOrganization;
import com.dkm.orproject.dkmoa.domain.vo.OaOrganizationVo;

import java.util.List;

/**
 *  @ClassName : OaOrganizationService  //类名
 *  @Description :   //描述
 *  @Author : 石智诚  //作者
 *  @Date: 2020-08-05 10:55  //时间
 */

public interface OaOrganizationService {
    /**
     * 根据id 删除
     * @param pkPostId 岗位ID
     * @return 是否删除成功
     */
    int delete(Long pkPostId);
    /**
     * 下拉框
     * @return id 和岗位名
     */
    List<OaOrganization> findByAll();

    /**
     * 增加岗位
     * @param record 岗位信息
     * @return 是否成功
     */
    int insert(OaOrganization record);

    /**
     * 根据岗位id查询
     * @param pkPostId 岗位id
     * @return 岗位模型
     */
    OaOrganization selectByPostId(Long pkPostId);
    /**
     * 更新某个岗位的信息
     * @param record 岗位信息
     * @param  personnelName 更新人名字
     * @return 是否更新成功
     */
    int update(OaOrganization record,String personnelName);

    /**
     * 逻辑删除
     * @param pkPostId 部门Id
     * @param  personnelName 更新人名字
     * @return 是否更新成功
     */
    int updateById(Long pkPostId,String personnelName);

    /**
     * 批量物理删除
     * @param list 部门的集合
     * @return 删除的行数
     */
    int deleteAll(List<Long> list);

    /**
     * 批量逻辑删除
     * @param list 部门的集合
     * @param personnelName 操作人
     * @return 删除的行数
     */
    int updateAll(List<Long> list,String personnelName);

    /**
     * 总行数
     * @param organization 人员模型 用于条件查询
     * @param startTime 开始时间
     * @param endTime 结束
     * @return 总行数
     */
    Long rowCount(OaOrganizationVo organization , String startTime, String endTime);

    /**
     * 查询
     * @param  organization 岗位
     * @param  page 显示第几页
     * @param  limit 显示数量
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 岗位集合
     */
    List<OaOrganizationVo> findAll( OaOrganizationVo organization,Integer page,Integer limit,  String startTime, String endTime);

    /**
     * 关键字去重
     * @param keyword 关键字
     * @return 1和0
     */
    int findByKeyWord(String keyword);

    /**
     * 根据部门查询岗位
     * @param pkDepartmentId   部门ＩＤ
     * @return 岗位的信息集合
     */
    List<OaOrganization> findById(Long pkDepartmentId);

    /**
     * 根据id 查岗位信息
     * @param pkPostId 岗位ID
     * @return 岗位信息
     */
    OaOrganizationVo selectByPkPostId(Long pkPostId);
}
